package com.note.feng.leetcode.algorithms.easy.nine;

public class NineHundredFive {
    /**
     * 905 按奇偶排列数组
     *给你一个整数数组 nums，将 nums 中的的所有偶数元素移动到数组的前面，后跟所有奇数元素。
     *
     * 返回满足此条件的 任一数组 作为答案。
     *
     * 示例 1：
     *
     * 输入：nums = [3,1,2,4]
     * 输出：[2,4,3,1]
     * 解释：[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。
     * 示例 2：
     *
     * 输入：nums = [0]
     * 输出：[0]
     *
     * 提示：
     *
     * 1 <= nums.length <= 5000
     * 0 <= nums[i] <= 5000
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode.cn/problems/sort-array-by-parity
     */
    /**
     * 解法：原地交换
     * 遍历数组，遇到奇数，与后面的偶数进行原地交换
     * @param nums
     * @return
     */
    public int[] sortArrayByParity(int[] nums) {
        int len = nums.length;
        for (int i = 0; i < len; i++) {
            if(nums[i] % 2 != 0){
                for (int j = i + 1; j < len; j++) {
                    if(nums[j] % 2 == 0){
                        int tmp = nums[j];
                        nums[j] = nums[i];
                        nums[i] = tmp;
                        break;
                    }
                }
            }
        }
        return nums;
    }
}
